草庐IT

c++ - 小数位数之和

全部标签

c++ - 混合 C 和 C++ 全局变量

在我的项目中,我们有一个类似于此的头文件:typedefstructMyStruct{intx;}MyStruct;extern"C"MyStructmy_struct;以前,它只包含在C++源文件中。现在,我需要将它包含在C文件中。因此,我执行以下操作:typedefstructMyStruct{intx;}MyStruct;#ifdef__cplusplusextern"C"MyStructmy_struct;#elseMyStructmy_struct;#endif我明白了外部“C”将声明my_struct全局变量为C链接,但这是否意味着如果我将此文件包含在C编译文件以及CPP编

c++ - 从自定义 printf 函数返回 const char*

我编写了一个自定义打印函数。我的问题是我需要返回一个constchar*,因为它必须在另一个函数中使用。我根本不知道如何管理...anotherFunction(constchar*text/*Here*/,unsigned__int32value,unsigned__int64bigVal);我知道以下示例无法正常工作。这就是我到目前为止所尝试的。constchar*CatchMessage(constchar*message,...){va_listargs;va_start(args,message);/*?*/va_end(args);returnmessage;}我目前只设法

c++ - 使用 Float 或 Double 类型时不显示小数

我的代码是这样的:#includeintmain(){usingnamespacestd;constfloatdollar=1.00;cout我是C++的初学者。我输入这段代码只是玩玩,并假设控制台会显示“你有10.00美元,但它实际上显示我有“10”而不是“10.00”美元。有人能告诉我这是为什么吗? 最佳答案 由于您正在处理美元金额,您可以在写入cout之前设置以下内容:std::cout.precision(2);std::cout.setf(std::ios::fixed);Livecodeexampleatcoliru#i

c++ - C 结构元素对齐 (ansi)

只是一个简单的问题...标准对结构成员对齐有何规定?例如这个:struct{uint8_ta;uint8_tb;/*othermembers*/}test;可以保证b位于从结构开始的偏移量1处吗?谢谢 最佳答案 标准(从C99开始)并没有真正说明什么。唯一真正的保证是(void*)&test==(void*)&a,并且a的地址低于b。其他一切都取决于实现。 关于c++-C结构元素对齐(ansi),我们在StackOverflow上找到一个类似的问题: http

c++ - memmove() 定义中有什么重叠?

我正在阅读关于memcpy和memmove的c++引用资料,它们似乎在做同样的事情,除了memmove有一个特定的thinkcalled(允许目的地和来源重叠)。什么是重叠以及何时发生? 最佳答案 非常简单。考虑memmove(dest,source,length)。如果范围source到source+length-1指定的字节范围包括dest指定范围内的任何字节到dest+length-1,两个范围重叠。在数组中移动元素时最有可能发生这种情况。示例://Slidearraydownbyone:chararray[N];memmov

c++ - 混合 C 和 C++ 的线程同步

我有一个多线程程序,主线程是第三方(无法更改)和纯C。我的任务是围绕它构建新模块(在C++中),这些模块部分驻留在其他线程中,需要使用C程序的接口(interface)。基本上只是读取在C线程中存储和更新的一些变量(整数、float,没有什么复杂的)。现在回答我的问题:我如何确保在访问这些变量时不会从C接口(interface)中获取垃圾,因为我无法在读取时使用互斥锁来锁定它。这可能吗?或者写一个float/int无论如何都是原子操作? 最佳答案 不幸的是,像“写一个float/int[是]原子操作”这样的语句在C或C++中没有很好

c++ - CUDA 真的没有类似 calloc() 的 API 调用吗?

从查看CUDA5.5APIReference和CUDACProgrammingGuide似乎没有cudaCalloc(),它是标准C库的calloc()的GPU等效项.是否真的没有用于分配初始化为全零的缓冲区的API功能?有什么比调用cudaMalloc()然后调用cudaMemset()更好的方法吗? 最佳答案 IstherereallynoAPIfunctionalityforallocatingabufferinitializedtoall-zeros?确实没有。IstheresomethingbetterIcandothat

c++ - 按位 - 如何检查一个二进制数是否包含另一个?

A=110000000-384Blue+RedB=011000010-194Green+Black+RedA&B=C=010000000-128Red如何检查B是否包含A中的所有位以及其他位?在上述情况下,我想得到“假”。我正在使用XCode和objective-c,但据我所知这应该无关紧要 最佳答案 如果A&B(即交集)等于A,则B包含A:(a&b)==a类似于a⊆b↔(a∩b)=a来自集合论。 关于c++-按位-如何检查一个二进制数是否包含另一个?,我们在StackOverflow上

c++ - “static const”、 “#define” 和 “enum” 在性能和内存使用方面的区别

可能是因为#define语句的内联。我知道答案可能取决于编译器,那么假设是GCC。已有类似问题aboutC和aboutC++,但它们更多地是关于使用方面的。 最佳答案 编译器会在给定基本优化后将它们视为相同。检查起来相当容易-考虑以下C代码:#definea1staticconstintb=2;typedefenum{FOUR=4}enum_t;intmain(){enum_tc=FOUR;printf("%d\n",a);printf("%d\n",b);printf("%d\n",c);return0;}用gcc-O3编译:00

c++ - Qt Creator - 代码正在运行,但我从 IDE 收到一条错误消息

一旦我运行我的代码(请注意,我只使用C,没有QT也没有C++),我从IDE中的应用程序输出中得到以下消息:Cannotobtainahandletotheinferior:Theparameterisincorrect.当我删除makefile和debug/release文件夹时,它正在运行,但一段时间后我仍然收到错误。虽然这不是什么大问题,代码运行并且一切正常,但是弹出此错误并且非常烦人。.pro文件的内容是:TEMPLATE=appCONFIG+=consoleCONFIG-=app_bundleCONFIG-=qtQMAKE_CC=gcc-std=c99SOURCES+=main